<template>
  <div class="student">
    <h2>学生姓名：{{ name }}</h2>
    <h2>学生性别：{{ sex }}</h2>
    <h3>count求和{{ number }}</h3>
    <button @click="SendStudentName">把学生名给App</button>
    <button @click="unbind">解绑atguigu事件</button>
    <button @click="add">点我number++</button>
    <button @click="death">点我销毁</button>
  </div>
</template>

<script>
export default {
  name: "Student",
  data() {
    return {
      name: "张三",
      sex: "男",
      number: 0,
    };
  },
  methods: {
    add() {
      console.log("add回调被调用了");
      this.number++;
    },
    SendStudentName() {
      // $emit 是触发Student组件实例身上的atguigu事件
      this.$emit("atguigu", this.name, 666, 888, 500);
      this.$emit("demo");
    },
    unbind() {
      this.$off("atguigu"); //只能解绑一个自定义事件
      this.$off(["atguigu", "demo"]); //解绑多个自定义事件
      this.$off(); //解绑所有的自定义事件 什么都不传
      console.log("我解绑了");
    },
    death() {
      //销毁了当前Student组件的实例(vc)，销毁后所有的Student实例的自定义事件将全部失效
      this.$destroy();
    },
  },
};
</script>

<style scoped>
.student {
  background-color: skyblue;
}
</style>
